Efficient adaptive feedforward periodic disturbance compensation

ABSTRACT

A system and method is given for minimizing periodic disturbances in electronic systems. Given the input-output characteristics of the system, the present method identifies and cancels the periodic disturbance. The periodic disturbance parameters are identified through the use of a residual generator. The output of the residual generator is fed into an identifier that estimates disturbance parameters. The compensation filter combines the output of the identifier with a set of pre-computed parameters to form a cancellation signal. This signal is then added to the input of the plant to cancel the periodic disturbance.

FIELD OF THE INVENTION

[0001] The present invention relates to the field of control systems. In particular the present invention diskloses a system and method for minimizing periodic disturbances.

BACKGROUND OF THE INVENTION

[0002] Many controlled physical systems include rotating parts. Some examples include machine tools such as CNC lathes and routers as well as rotating data storage products for computers and consumer electronics. In particular, rotating storage devices include hard disk drives, CD players, CD-ROM drives, and DVD players. Accurate control over the position of the data read/write mechanism is critical to the operation of a rotating media storage product. For example, in a hard disk drive system data is stored in magnetic circular tracks on a media platter. Data is read and written by a magnetic head that floats over the circular tracks.

[0003] Unmeasured variables may affect the operation of a drive and can cause variations in performance from unit to unit, as well as within a unit during use of the drive. These variables may include temperature, spindle bearing asperity, disk flutter, induced non-repeatable run-out (NRRO), and variable repeatable run-out (RRO).

[0004] The rotating parts (disk platters and spindle-motor assemblies) in a rotating data storage device introduce periodic disturbances in the position of the read/write mechanism. In hard disk drives, for example, the track positions are recorded on each disk platter during a servo writing process. Ideally, the track positions are laid out in perfect concentric circles such that, while the disk is spinning, the head need not move since the data is located in a perfect circle relative to the head. However, small errors are made during the servo writing process that result in data tracks that are slightly non-circular. To a head position servo control system, this non-circularity appears as a periodic component in the error between the track position and the head position.

[0005] In the examples above and in many other cases the disturbance magnitude is a function of the angular position of the media platter under the read/write mechanism. Many rotating storage devices use sampled-data controllers with a fixed integer number of samples per full rotation of the storage media platter. The disturbances appear to such a sampled data system as signals that have a period that is an exact multiple of the sample time. The fundamental period of such signals is typically the number of samples per full rotation of the storage media platter. An important goal for a read/write mechanism position control system is to minimize the effects of these periodic disturbances.

[0006] Other systems suffer from the effects of periodic disturbances as well. Examples include electrical power delivery systems and communications systems that suffer from power line noise at harmonics of the AC power fundamental frequency.

[0007] All of these systems can benefit from a compensation scheme that minimizes the effects of periodic disturbances. FIG. 1 illustrates a prior art method for canceling periodic disturbances. This prior art method utilizes “plug-in”compensation where a repetitive compensator is used to augment an existing nominal compensator. FIG. 2 illustrates a prior art method for canceling periodic disturbances. This prior art method utilizes an adaptive feed forward cancellation scheme.

[0008] Both of the methods illustrated in FIGS. 1 and 2 have significant drawbacks. They only take as an input the error signal computed from either the plant output or the difference between the plant output and a desired setpoint. As a result, they do not differentiate between periodic disturbances and signals that are created by the feedback control system. The system in FIG. 1 is a feedback compensator and does not allow feed forward cancellation as does the system in FIG. 2. However, the prior art system of FIG. 2 only uses the output of their plant y(t) in its controller. Furthermore, the prior art system of FIG. 2 fails to account for the input/output behavior of the plant.

[0009] The RRO compensation methods are particularly difficult for CD-ROM drives. CD players and DVD drives because the error caused by RRO changes every time a disk is inserted into a drive. Furthermore, the error caused by RRO in CD-ROMs, DVDS, and CDs, changes over time based upon the changing rotational velocity of the disk, thus complicating RRO compensation methods.

SUMMARY OF THE INVENTION

[0010] A system and method is given for minimizing periodic disturbances in electronic systems. Given the input-output characteristics of the electronic system, the present system identifies and cancels the periodic disturbance. The periodic disturbance parameters are identified through the use of a residual generator. The output of the residual generator is fed into an identifier that estimates disturbance parameters. The compensation filter combines the output of the identifier with a set of pre-computed parameters to form a cancellation signal. This signal is then added to the input of the plant to cancel the periodic disturbance.

[0011] Other features and advantages of the present invention will be apparent from the accompanying drawings and from the following detailed description.

BRIEF DESCRIPTION OF THE DRAWINGS

[0012] The objects, features and advantages of the present invention will be apparent to one skilled in the art in view of the following detailed description in which:

[0013]FIG. 1 illustrates a prior art “plug-in” repetitive compensation scheme.

[0014]FIG. 2 illustrates a prior art Adaptive Feed Forward Compensation Scheme.

[0015]FIG. 3 illustrates an embodiment of the present system.

[0016]FIG. 4 illustrates a representative Periodic Disturbance waveform.

[0017]FIG. 5 illustrates a spinning media system implementing one embodiment of a disturbance compensator.

[0018]FIG. 6 illustrates one embodiment of a v-signal generator.

[0019]FIG. 7 illustrates a first embodiment for signal sharing between periodic disturbance cancellation and model selection components.

[0020]FIG. 8 illustrates a second embodiment for signal sharing between periodic disturbance cancellation and model selection components.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

[0021] A method and apparatus for Adaptive Feed-Forward Disturbance Cancellation is disklosed. In the following description, for purposes of explanation, specific nomenclature is set forth to provide a thorough understanding of the present techniques. However, it will be apparent to one skilled in the art that these specific details are not required in order to practice the present techniques. For example, the elements of the present techniques described may implement embodiments utilizing all hardware or any combination of hardware and software.

[0022] Disturbances associated with systems having rotating parts may be characterized as Repeatable-Run-Out (RRO) or Non-Repeatable-Run-Out (NRRO). RRO disturbances are periodic and phase-locked to the angular position of the rotating parts. By way of example in a hard disk drive, if a fixed point were marked on the disk, RRO would cause the magnetic head to be misaligned with the fixed point by the same amount on every rotation. In contrast, NRRO disturbances could be periodic in nature but not phase-locked to the rotation of the disk. Examples of NRRO could be a sudden impact or the vibrations caused by a cooling fan.

[0023] The present system, among other things, minimizes the effects of RRO on rotational systems. A system is given that can be modeled by one or more mathematical equations. The input-output characteristics of the model are typically known before the present system is applied to the rotational system. The periodic disturbance must be identified and cancelled on-line. The present system identifies and cancels the periodic disturbance.

[0024] The periodic disturbance parameters are identified through the use of a residual generator. The residual generator could be implemented as a Kalman filter having numerous realization structures. The output of the residual generator is fed into an identifier. The output of the identifier is an estimate of the disturbance parameters.

[0025] A compensation filter combines the output of the identifier with a set of pre-computed parameters to form a cancellation signal. This signal is then added to the input of the plant to cancel the periodic disturbance. The residual generator, identifier, and compensation filter are all diskrete-time systems that are updated at every sample k.

[0026] Some portions of the detailed descriptions that follow are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.

[0027] It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following diskussion, it is appreciated that throughout the description, diskussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.

[0028] The present system also relates to apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but not limited to, any type of disk including floppy disks. optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs). random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.

[0029] The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these systems will appear from the description below. In addition, the present system is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the system as described herein.

[0030] The control scheme described herein may be implemented with a wide variety of systems including acoustical, mechanical, and electrical systems. For example, the control scheme described herein may be used to provide control of periodic disturbances caused in a disk drive system as diskussed below.

[0031]FIG. 3 illustrates a system implementing one embodiment of a periodic disturbance compensator 301 designed to compensate for a periodic or quasi-periodic disturbance. It consists of three components.

[0032] 1. A residual generator 300 that pre-processes plant input signal u 360 and plant output signal y 350. The residual generator is designed to create a signal x 390 that contains only periodic disturbance and random noise components.

[0033] 2. An identifier 310 is used to compute parameters on-line that characterize the periodic disturbance from the signal x 390.

[0034] 3. A compensation filter 320 uses the parameters computed by the identifier 310 to form a compensation signal s 380 that cancels the effect of the periodic disturbance on the output of the plant.

[0035] A model disturbance signal v 370 is injected into identifier 310 and compensation filter 320 by a v-signal generator 375. When the present system is added to an existing servo control system 302, the compensator 301 identifies the periodic disturbance parameters from the input-output behavior of the servo control system. Next, the compensator 301 injects sinusoids with frequencies at integer multiples of the periods of the periodic disturbance. As a result, the feedback properties of the servo control system 302 are unaffected at other frequencies. The compensator 301 is designed and can be directly analyzed in diskrete time, thereby avoiding the need to convert a continuous-time design into a diskrete-time one and re-analyze its properties.

[0036] Periodic Disturbance Compensator Component Design

[0037] In one embodiment, the plant 340 shown in FIG. 3 is modeled with the following equation $\begin{matrix} \begin{matrix} {y_{k} = {{{- a_{1}}y_{k - 1}} - {a_{2}y_{k - 2}\quad \cdots} - {a_{n}y_{k - n}} +}} \\ {{{b_{1}u_{k - 1}} + {b_{2}u_{{k - 2}\quad}\cdots} + {b_{n}u_{k - n}} +}} \\ {{{c_{1}v_{k - 1}} + {c_{2}v_{k - j}} + e_{k}}} \end{matrix} & (1) \end{matrix}$

[0038] Here, signal u 360 is an input formed by the feedback controller 330, signal y 350 is the output of the plant 340, signal v 370 is a known sinusoid modeled by the equation v_(k)=sin(k*2π/m) with a period of m samples, and signal e is Gaussian white noise with a known variance. For a physical system such as the system 302 shown in FIG. 3. signals u 360 and y 350 are signals that can be measured. The signal e_(k) in equation 1 above is not a separate signal in the physical system that can be measured, but serves to model random disturbances and measurement noise that are present in the system 302. The signal v 370 is also not present as a signal that can be measured. Rather, the signal v 370 can be viewed as part of the model expressed by equation 1. The parameters c₁ and c₂ of equation 1 are such that the effect of the signal v 370 on the output y 350 matches the behavior of the system 302. The delay constant j seen in equation (1), can be chosen to be any value such that v_(k−1) and v_(k−j) are independent. For example, if m is even, j≠1+im/2 for all integers i. Choosing j as j≅m/4 results in the signals v_(k−1) and v_(k−j) being nearly orthogonal.

[0039] The model in equation 1 models one sinusoidal disturbance, signal v 370. A periodic disturbance may exist that is not sinusoidal, as shown in FIG. 4. In this case, the non-sinusoidal signal may be approximated via Fourier series as the sum of several sinusoids with periods that are harmonics of the fundamental period. In this case the model in equation 1 is generalized by including several sinusoids ¹v . . . ^(p)v with frequencies that are multiples of the fundamental frequency. Each signal has its own pair of parameters ^(i)c₁, and ^(i)c₂ and delay ^(i)j associated with ^(i)c₂. The single sinusoid case will be described below for simplicity. When necessary, the generalization to multiple sinusoids will be described also.

[0040] The model described by equation (1) may be obtained from the methods disklosed in co-pending U.S. patent application entitled “ADAPTION TO UNMEASURED VARIABLES,” application Ser. No. 09/345,1664 file on Jun. 30, 1999 assigned to the assignee of the application herein, and incorporated herein by reference.

[0041] Compensation Filter Design

[0042] The compensation filter is designed to filter the model disturbance signal v 370 to create a signal s 380. As described above, the model disturbance signal v 370 is not directly measurable by the servo control system 302. The model disturbance signal v 370 is created by a v-generator 375. The signal s 380 is injected into the plant input by adding it to an existing controller for the plant as shown in FIG. 3. In the context of FIG. 3 and equation 1, the compensation filter is designed to compute a signal s 380 and add it to signal u 360 to cancel the effect of model disturbance signal v 370 on the output signal y 350 given known parameter vectors [a₁ . . . a_(n)], [b₁ . . . b_(n)], [c₁.c₂]. By way of example, the compensation filter is described for the case where the delay j=2 A person with ordinary skill in the art can modify the filter for other values of the delay j.

[0043] A signal s 380 is described such that

b ₁ s _(k−1) +b ₂ s _(k−2) . . . +b _(n) s _(k−n) =c ₁ v _(k−1) −c ₂ v _(k−2)   (2)

[0044] By defining ^(s)u_(k)=u_(k)+s_(k), and substituting ^(s)u_(k) into equation (1), equation (3) results: $\begin{matrix} \begin{matrix} {y_{k} = {{{- a_{1}}y_{k - 1}} - {a_{2}y_{{k - 2}\quad}\cdots} - {a_{n}y_{k - n}} +}} \\ {{{b_{1}^{s}u_{k - 1}} + {b_{2}^{s}u_{k - 2}\quad \cdots} + {b_{n}^{s}u_{k - n}} +}} \\ {{{c_{1}v_{k - 1}} + {c_{2}v_{k - 2}} + e_{k}}} \\ {= {{{- a_{1}}y_{k - 1}} - {a_{2}y_{{k - 2}\quad}\cdots} - {a_{n}y_{k - n}} +}} \\ {{{b_{1}u_{k - 1}} + {b_{2}u_{k - 2}\quad \cdots} + {b_{n}u_{k - n}} + e_{k}}} \end{matrix} & (3) \end{matrix}$

[0045] thereby removing the effect of signal v_(k) 370 on the output signal y_(k) 350. Implementing equation 2 as a filter to compute signal s 380 from signal v 370 is not desirable for several reasons. First, the filter defined by equation 2 might be unstable if one or more of the roots of the polynomial b₁z⁻¹+ . . . +b_(n)z^(−n) are larger than 1. Second, even if it is stable, the filter may have internal modes that are poorly damped or decay slowly. Third, the order of the filter depends on the order of the model represented by equation 1 and may be quite high in some cases.

[0046] Since signal v 370 is a sinusoid, the signal s 380 is also a sinusoid that satisfies equation (2). Let V be the Z-transform of signal v 370 and S be the Z-transform of signal s 380. Then $\begin{matrix} {S = \frac{{- c_{1}} - {c_{2}z^{- 1}}}{b_{1} + {b_{2}z^{- 1}\cdots} + {b_{n}z^{n - 1}}}} & (4) \end{matrix}$

[0047] If the definitions of α₁, and α₂ are as follows $\begin{matrix} {{\alpha_{1} = {\left( \frac{- 1}{b_{1} + {b_{2}z^{{- 1}\quad}\cdots} + {b_{n}z^{n - 1}}} \right)_{z = ^{j\omega}}\quad {and}}}{\alpha_{2} = \left( \frac{- z^{- 1}}{b_{1} + {b_{2}z^{- 1}\quad \cdots} + {b_{n}z^{n - 1}}} \right)_{z = ^{j\omega}}}} & (5) \end{matrix}$

[0048] where ω=2π/m is the frequency of signal v 370 and signal s 380, then

S=(α₁ c ₁+α₂ c ₂)V   (6)

[0049] By using the inverse Z-transform to convert back to the time domain, the desired signal s 380 is obtained. Computing signal s 380 from signal v 370 using these expressions requires transforms and complex calculations.

[0050] To compute s from v using real arithmetic, a pair of real parameters f₁ and f₂ are defined such that $\begin{matrix} {\alpha_{1} = {{\left( {f_{1} + {f_{2}z^{- 1}}} \right)_{z = ^{j\omega}}\quad {and}\quad \alpha_{2}} = \left( {{f_{1}z^{- 1}} + {f_{2}z^{- 2}}} \right)_{z = ^{j\omega}}}} & (7) \end{matrix}$

[0051] By substituting equation 7 back into equation 6,

S=(f ₁ c ₁+(f ₂ c ₁ +f ₁ c ₂)z ⁻¹ +f ₂ c ₂ z ⁻²)V.   (8)

[0052] Equation 8 can be realized in the time domain as a 3-tap FIR filter with real coefficients as follows:

s _(k) =f ₁ c ₁ v _(k)+(f ₂ c ₁ +f ₁ c ₂)v _(k−1) +f ₂ c ₂ v _(k−2).   (9)

[0053] In one embodiment, the signal s can be computed from a 2-tap FIR filter. The signal s may be formed by any means that creates a sinusoid with the desired phase and magnitude. By defining a pair of real parameters γ₁ and γ₂ such that $\begin{matrix} {\gamma_{2} = {{\frac{\sin \left( {{- 2}\omega} \right)}{\sin \left( {- \omega} \right)}\quad {and}\quad \gamma_{1}} = {{\cos \left( {{- 2}\omega} \right)} - {\gamma_{2}{\cos \left( {- \omega} \right)}}}}} & (10) \end{matrix}$

[0054] it can be shown via manipulation of basic trigonometric identities that

v _(k−2)=γ₁ v _(k)+γ₂ v _(k−1).   (11)

[0055] By substituting equation 11 into equation 9,

s _(k)=(f ₁ c ₁ +f ₂ c ₂γ₁)v _(k)+(f ₂ c ₁ +f ₁ c ₂ +f ₂ c ₂γ₂)v _(k−1).   (12)

[0056] This expression can be written using matrix notation as: $\begin{matrix} {s_{k} = {{{\left\lbrack {v_{k},v_{k - 1}} \right\rbrack \begin{bmatrix} f_{1} & {\gamma_{1}f_{2}} \\ f_{2} & {f_{1} + {\gamma_{2}f_{2}}} \end{bmatrix}}\begin{bmatrix} c_{1} \\ c_{2} \end{bmatrix}} = {\left\lbrack {v_{k},v_{k - 1}} \right\rbrack {{M\begin{bmatrix} c_{1} \\ c_{2} \end{bmatrix}}.}}}} & (13) \end{matrix}$

[0057] The matrix M of equation 13 depends only on [a₁ . . . a_(n)], [b₁ . . . b_(n)]. and the sinusoid frequency ω. As a result, it may be computed ahead of time. When the parameters c₁ and c₂ become available, the coefficients of the FIR filter described by equation 12 may be computed with the single real matrix multiply $\begin{matrix} {{M\begin{bmatrix} c_{1} \\ c_{2} \end{bmatrix}}.} & (14) \end{matrix}$

[0058] This method for forming the signal s 380 is extremely efficient because it uses real arithmetic, computes the signal s 380 using only a 2-tap FIR filter, and computes tile filter coefficients from the [c₁,c₂] parameters using a single real 2×2 matrix multiply.

[0059] If the model of equation 1 is generalized so that several sinusoids ¹v . . . ^(p)v with frequencies ¹ω . . . ^(p)ω are present and each has its own pair of parameters ^(i)c₁ and ^(i)c₂. an individual cancellation signal ^(i)s can be computed for each ^(i)v. The signals ¹s . . . ^(p)s can all be added to the input u 360 to remove the p sinusoids from the output y 350.

[0060] Identifier and Residual Generator Design

[0061] If all of the parameter vectors [a₁ . . . a_(n)], [b₁ . . . b_(n)], and [c₁, c₂] are known, the compensation filter is all that is necessary to compensate for periodic disturbances. However, parameter vectors [c₁, c₂] are rarely known. By way of example, the case where vectors [a₁ . . . a_(n)], [b₁ . . . b_(n)] are known, [c₁, c₂] are not and input and output data for the system described by the model of equation 1 are given, the [c₁, c₂] parameters should be identifiable. The parameters are identified using only real arithmetic, and are efficient to implement in real time.

[0062] In one embodiment consistent with the Compensation Filter Design description above, the residual generator 300 and Identifier 310 are described for a single sinusoid signal v 370 and the delay j=2 . One skilled in the art may extend the design to multiple sinusoids and other values of j.

[0063] The residual generator 300 contains data that models the plant 340. The residual generator 300 is an estimator that takes as inputs signals y 350, and u 360, and with the modeling data of the plant removes the Input/Output behavior of the plant, leaving only the estimated disturbances. The disturbances are modeled as signal x 390, which is the output of the residual generator 300.

[0064] A signal x 390 is computed from the signals ti 360 and y 350 via the expression

x _(k) =y _(k) +a ₁ y _(k−1) +a ₂ y _(k−2) . . . +a _(n) y _(k−n) −b ₁ u _(k−1) −b ₂ u _(k−2) . . . −b _(n) u _(k−n)   (15)

[0065] Equation 15 defines the residual generator 300. The residual generator (300) is an FIR filter with two inputs, signal u 360 and signal y 350, and one output. signal x 390. Hence, it is stable and may be implemented with real arithmetic.

[0066] The identifier 310 takes the signal x 390 from the residual generator 300 and creates parameters for the compensation signal s 380. These parameters are provided to the compensation filter 320, which combines them with model disturbance signal v 370 and cancels the disturbance by injecting compensation signal s 380 into the plant 340. Thus, in one embodiment the Identifier 310 can be modeled as follows:

[0067] By substituting equation 15 into equation 1 equation 16 is obtained:

x _(k) =c ₁ v _(k−1) +c ₂ v _(k−2) +e _(k)   (16)

[0068] By defining

r=[c ₁ , c ₂]′ and g _(k) =[v _(k−1) , v _(k−2)]  (17)

[0069] where, [c₁,c₂]′ signifies the transpose of [c₁,c₂], equation 16 becomes

x _(k) =g _(k) r+e _(k)   (18)

[0070] The estimate of the parameter vector r at time k is defined to be {circumflex over (r)}_(k). The identifier 310 uses the signals x 390 and v 370 to compute {circumflex over (r)} such that {circumflex over (r)} is a good estimate of r. In one embodiment, the Least-Mean-Square (LMS) adaptive identification law is

{circumflex over (r)}_(k−1) ={circumflex over (r)} _(k) +εg′ _(k)(x _(k) −g _(k) {circumflex over (r)} _(k))   (19)

[0071] Here ε is an adjustable adaptation gain. If several signals ¹v . . . ^(p)v are present, equation 16 may be expressed as

x _(k)=¹ c ₁ ¹ v _(k−1)+¹ c ₂ ¹ v _(k−2)+ . . . +^(p) c ₁ ^(p) v _(k−1)+^(p) c ₂ ^(p) v _(k−2) +e _(k)   (20)

[0072] The definitions in equation 17 then become $\begin{matrix} {{r = {\left\lbrack {}^{1}{c_{1},^{1}c_{2},{{\ldots \quad}^{p}c_{1}},^{p}c_{2}} \right\rbrack \quad {and}}}{g_{k} = \left\lbrack {}^{1}{v_{k - 1},^{1}v_{k - 2},{{\ldots \quad}^{p}v_{k - 1}},^{p}v_{k - 2}} \right\rbrack}} & (21) \end{matrix}$

[0073] By substituting equation 21 into equation 20, the expression in equation 18 results and the adaptation law represented by equation 19 still applies. Modification for different delay values associated with ^(i)v is similarly direct. In addition, a separate ^(i)ε can be set for each pair of parameters being identified.

[0074] V-Signal Generator and Variable Rotation Rate Systems

[0075]FIG. 5 shows a spinning media system 500 implementing one embodiment of the disturbance compensator 500 described above. The disturbance compensator is coupled to a controller 520. The controller 520 controls the reading head 530. The reading head 530, however, could be any media reading device such as a laser or optical pick-up (OPU) for compact disk (CD), CD-ROM and digital video disk (DVD) systems. or a magnetic head for hard disk drives or other magnetic storage media. The head 530 reads data at a point on the media platter 540 having radial position r 550 and angular position θ 560. In addition, media platter 540 spins at an angular velocity V_(θ) 570. In hard disk drive systems as diskussed above, V_(θ) 570 is fixed. However, in systems such as CDs, CD-ROMs and DVDs, V_(θ) is variable. In such devices, the frequency of rotation slows down to maintain a constant linear bit rate as an optical pick-up (OPU) follows a spiral track from the inside of the disk to the outside of the disk. Hence, the frequencies at which RRO occur vary depending upon the position of the OPU over the disk. However, the shifting of the frequencies over the radius of the disk is known, allowing adaptive RRO compensation to be applied. Disturbance compensator 510 includes a v-signal generator that compensates for a variable V_(θ) as shown in FIG. 6.

[0076]FIG. 6 shows one embodiment of a v-signal generator 600 that outputs a model disturbance signal v 640 which would be injected into a disturbance compensator such as the one shown in FIG. 3. Model disturbance signal v 640, as described in detail above, represents a sinusoid having a frequency related to the angular velocity V_(θ) 620 of a spinning disk, such as a CD, CD-ROM or DVD system or magnetic media such as a hard disk.

[0077] The v-signal generator 600 takes as inputs radial position r 630, angular position θ 610, and angular velocity V_(θ) 620. The model disturbance signal v 640 may be computed from any of the inputs or any combination thereof. For example, in a fixed rotation rate system, the angular velocity V_(θ) 620 and angular position θ 610 are sufficient to generate model disturbance signal v 640. In another embodiment, in a variable rotation rate system, the radial position r 630 and angular position θ 610 are sufficient to generate model disturbance signal v 640.

[0078] In one embodiment, instead of generating sinusoids for model disturbance signal v 640 from a look-up table, the sinusoids may be generated by oscillators. The parameters for the oscillators that control their frequencies may be obtained from a look-up table or computed from polynomial functions related to the radial position r 630 of the OPU. If tables are used to update the oscillator's values, then the disk surface may be divided into radial zones. Within these zones, constant fixed parameters or interpolated values may be used. Furthermore, the M matrix of equations 13 and 14 above which depend upon the frequency response of the plant may be obtained at run time. The values of the parameters of the M matrix may be read from tables or generated from polynomial or other functions. Thus, adaptive feed forward RRO compensation described at length above may be applied to systems with either fixed or variable rotation rates.

[0079] Sharing Signals and Components with Controller Selectors

[0080] The use of signals to select the best controller from a number of candidates is described in the patent application “Adaptation to Unmeasured Variables” referenced above. This description shows how signals used by controller selectors can be generated by modifications of the periodic disturbance compensator described here.

[0081] In one embodiment the output of the residual generator 300 expressed in equation 16 is used in the LMS identification law expressed in equation 19. A key expression of equation 19 is (x_(k)−g_(k){circumflex over (r)}_(k)). By defining ê_(k)≡(x_(k)−g_(k){circumflex over (r)}_(k)), the signal e_(k) is estimated. If {circumflex over (r)}_(k) is a good estimate for the true parameter vector then

(x _(k) −g _(k) {circumflex over (r)} _(k))≡ê _(k) ≅e _(k)   (22)

[0082] The signal ê_(k) provides a measure for how well the model defined by the parameter vectors [a₁ . . . a_(n)] and [b₁ . . . b_(n)] describes the input-output behavior of the actual system that is modeled with equation 1. This is precisely the kind of signal used in the controller selector architecture described in the patent application, “Adaptation to Unmeasured Variables,” referenced above.

[0083] Two possible embodiments for generating error signals from several candidate model equations are described here. The first embodiment is shown in FIG. 7. In this embodiment, a residual generator 720 and identifier 710 are implemented for each candidate model. This architecture is applicable for candidate models that may be very different in character. For each candidate model i, a complete residual generator 710 and c parameter identifier 710 are operated. Each residual generator 720 receives signal u 740, which is an input to the plant 770. Signal v 750 is an input to the controller 780. The output of the plant 770 and the controller 780 are summed with the actual error signal e 760 and provided to the residual generators 720. Each error signal ^(i)e 730 is a byproduct of the residual generating 720 and identification 710 architecture. The structure for the first two candidate models is shown in the figure.

[0084] Referring to FIG. 8, the second proposed embodiment for signal sharing between periodic disturbance cancellation and model selection components uses only one c parameter identifier 850. Its output is used by each estimator to form its error signal ^(i)e. Each residual generator 820 receives signal u 840, which is an input to the plant 880. Signal v 850 is an input to the controller 890. The output of the plant 880 and the controller 890 are summed with the actual error signal e 860 and provided to the residual generators 820. The structure for the first two candidate models is shown in FIG. 8.

[0085] If the input-output transfer functions for all of the candidate models have approximately the same complex values when evaluated at periodic disturbance frequencies w, then the disturbance parameters identified by each identifier 850 will all be approximately the same. In this case, the output g_(k){circumflex over (r)}_(k) 870 of each identifier 850 is approximately the same, and only one identifier 850 is implemented. An architecture that generates several error signals using only one identifier 850 is shown in FIG. 8.

[0086] Multi-Input Multi-Output Systems

[0087] The embodiments described above can easily be extended for multi-input multi-output (MIMO) systems. In Equation 1, each u_(k) and y_(k) become vectors and the parameters a_(i), b_(i), and c_(i) all become matrices. The same architecture still applies and the algorithms described here can be directly extended to accommodate such MIMO systems.

[0088] The adaptation method expressed by equation 19 is just one of a number of different methods that may be applied to identify the c_(i) parameters on-line. These include projection algorithms, gradient algorithms, and recursive least squares algorithms as well as others.

[0089] The method described to form the cancellation signal s_(k) 380 from the c_(i) parameters is a particularly efficient way to do so. It is not the only way, however. Any method that generates the sinusoidal cancellation signal s_(k) from the c_(i) parameters can be used to successfully solve the problem.

[0090] The examples given for the generation of error signals for use by controller selection schemes remain relevant if any of the extensions and generalizations described above are applied to solve a periodic disturbance cancellation problem.

[0091] The foregoing has described an Adaptive Feed-Forward Compensation Scheme. It is contemplated that changes and modifications may be made by one of ordinary skill in the art, to the materials and arrangements of elements of the present system without departing from the scope of the system. 

We claim:
 1. A method of minimizing periodic disturbances in a plant having an input and output signal, said method comprising: receiving the input and output signal of the plant by a residual generator; providing a disturbance signal in the residual generator; receiving the disturbance signal by an identifier; and providing parameters describing the disturbance signal in the identifier.
 2. The method as claimed in claim 1, said method further comprising: receiving the parameters by a compensation filter; providing a compensation signal in the compensation filter; and adding the compensation signal to the plant input signal.
 3. The method as claimed in claim 2, said method further comprising: outputting a model disturbance signal from a signal generator; and receiving the model disturbance signal in the identifier, compensation filter, and plant.
 4. The method as claimed in claim 3, wherein generating a model disturbance signal further comprises providing one or more inputs to the signal generator.
 5. The method as claimed in claim 4, wherein the input is the angular velocity of a disk rotated by the plant.
 6. The method as claimed in claim 4, wherein the input is the angular position of a head on a disk rotated by the plant.
 7. The method as claimed in claim 4, wherein the input is the radial position of a head on a disk rotated by the plant.
 8. The method as claimed in claim 1, said method further comprising receiving the parameters by one or more compensation filters.
 9. The method as claimed in claim 1, said method further comprising receiving the parameters by one or more model selection components.
 10. The method as claimed in claim 1 wherein the filter comprises data modeling the plant.
 11. A system for minimizing periodic disturbances in an electronic system, said system comprising: a residual generator comprising a first input and second input; an identifier electronically coupled to the residual generator and configured to accept a model disturbance signal; and a compensation filter electronically coupled to the identifier and configured to accept a model disturbance signal.
 12. The system as claimed in claim 11 wherein the first filter input is electronically coupled to a plant input.
 13. The system as claimed in claim 12 wherein the compensation filter generates a compensation signal electronically coupled to the plant input.
 14. The system as claimed in claim 11 wherein the second filter input is electronically coupled to a plant output.
 15. The system as claimed in claim 11 wherein the identifier further comprises plant modeling data.
 16. The system as claimed in claim 11 wherein the filter provides a disturbance signal.
 17. The system as claimed in claim 11 wherein the identifier provides parameters for the compensation filter.
 18. The system as claimed in claim 11 further comprising: a plant having a first and second input and an output; and a controller having an input and output wherein the controller input is electronically coupled to the plant output and the controller output is electronically coupled to the first plant input.
 19. The system as claimed in claim 18 further comprising a signal generator having one or more inputs, wherein the signal generator provides the model disturbance signal to the identifier, the second plant input, and the compensation filter.
 20. The system as claimed in claim 19, wherein one signal generator input is the angular velocity of a disk rotated by the plant.
 21. The system as claimed in claim 19, wherein one signal generator input is the angular position of a head on a disk rotated by the plant.
 22. The system as claimed in claim 19, wherein the input is the radial position of a head on a disk rotated by the plant.
 23. The system as claimed in claim 11 wherein the parameters are provided to one or more compensation filters.
 24. The system as claimed in claim 11 wherein the parameters are provided to one or more model selection components.
 25. A computer-readable medium having stored thereon a plurality of instructions, said plurality of instructions when executed by a computer, cause said computer to perform the method of: receiving an input signal and an output signal of a plant by a residual generator; providing a disturbance signal in the residual generator; receiving the disturbance signal by an identifier; and providing parameters describing the disturbance signal in the identifier.
 26. The computer-readable medium of claim 25 having stored thereon additional instructions, said additional instructions when executed by a computer, cause said computer to further perform the method of: receiving the parameters by a compensation filter; providing a compensation signal in the compensation filter: and adding the compensation signal to the plant input signal.
 27. The computer-readable medium of claim 26 having stored thereon additional instructions, said additional instructions when executed by a computer, cause said computer to further perform the method of: outputting a model disturbance signal from a signal generator; and receiving the model disturbance signal in the identifier, compensation filter, and plant.
 28. The computer-readable medium of claim 27 having stored thereon additional instructions, said additional instructions when executed by a computer, cause said computer to further perform the method of providing one or more inputs to the signal generator.
 29. The computer-readable medium of claim 28 having stored thereon additional instructions, said additional instructions when executed by a computer, cause said computer to further perform the method of inputting into the signal generator, the angular velocity of a disk rotated by the plant.
 30. The computer-readable medium of claim 28 having stored thereon additional instructions, said additional instructions when executed by a computer, cause said computer to further perform the method of inputting into the signal generator, the angular position of a head on a disk rotated by the plant.
 31. The computer-readable medium of claim 28 having stored thereon additional instructions, said additional instructions when executed by a computer, cause said computer to further perform the method of inputting into the signal generator, the radial position of a head on a disk rotated by the plant.
 32. The computer-readable medium of claim 25 having stored thereon additional instructions, said additional instructions when executed by a computer, cause said computer to further perform the method of receiving the parameters by one or more compensation filters.
 33. The computer-readable medium of claim 25 having stored thereon additional instructions, said additional instructions when executed by a computer, cause said computer to further perform the method of receiving the parameters by one or more model selection components.
 34. The computer-readable medium of claim 25 having stored thereon additional instructions, said additional instructions when executed by a computer, cause said computer to further perform the method of providing a model of the plant in the filter.
 35. A system for minimizing periodic disturbances in an electronic system, said system comprising: means for filtering a first input signal and second input signal; means for identifying compensation parameters wherein the identifying means are electronically coupled to the filtering means; means for compensation filtering including means for electronically coupling the compensation filtering means to the identifying means; and means for receiving a model disturbance signal; and means for generating a model disturbance signal.
 36. The system as claimed in claim 35 wherein the first input signal is a plant input signal.
 37. The system as claimed in claim 35 wherein the second input signal is a plant output signal.
 38. The system as claimed in claim 35 wherein the identifying means further comprises means for modeling a plant.
 39. The system as claimed in claim 35 wherein the compensation filtering means provides a compensation signal, the compensation signal electronically coupled to an input of the plant.
 40. The system as claimed in claim 35 wherein the filtering means provides a disturbance signal.
 41. The system as claimed in claim 35 wherein the identifying means provides parameters for the compensation filtering means.
 42. The system as claimed in claim 35 further comprising: means for spinning a media platter comprising: input means and an output means; and controlling means having an input and output wherein the controlling means input is electronically coupled to the spinning means output and the controlling means output is electronically coupled to the spinning means input.
 43. The system as claimed in claim 35 wherein the compensation parameters are provided to one or more means for compensation filtering.
 44. The system as claimed in claim 35 wherein the compensation parameters are provided to one or more means for selecting model components. 